Service Instance Applied to MPLS Network

ABSTRACT

Domain-wide unique node identifiers and domain-wide unique service identifiers are distributed within a MPLS domain using routing system LSAs. Nodes on the MPLS network compute shortest path trees for each destination and install unicast forwarding state based on the calculated trees. Nodes also install multicast connectivity between nodes advertising common interest in a common service identifier. Rather than distributing labels to be used in connection with unicast and multicast connectivity, the nodes deterministically calculate the labels. Any number of label contexts may be calculated. The labels may either be domain wide unique per unicast path or per multicast, or may be locally unique and deterministically calculated to provide forwarding context for the associated path. Multicast and unicast paths may be congruent, although this is not a requirement.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/412,589, filed Mar. 27, 2009, which claims priority to U.S.Provisional Patent Application Ser. No. 61/114,558 filed Nov. 14, 2008,the content of each of which is hereby incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to communication networks and, moreparticularly, to a method and apparatus for enabling a notion of serviceinstance to be applied to MPLS networks.

BACKGROUND

Data communication networks may include various switches, routers, hubs,and other devices coupled to and configured to receive data and forwardthe data on the network. These devices will be referred to herein as“network elements.” A network element is generally not a consumer of thedata, but rather is used to receive and forward data so that the datamay pass through the network. Data is communicated through a network byenabling the network elements to pass protocol data units, such asframes, packets, cells or segments, between each other overcommunication links. A particular protocol data unit may be handled bymultiple network elements and cross multiple communication links as ittravels between its source and its destination over the network.

The various network elements on the communication network communicatewith each other using predefined sets of rules, referred to herein asprotocols. Different protocols are used to govern different aspects ofthe communication, such as how signals should be formed for transmissionbetween the network elements, various aspects of what the protocol dataunits should look like, how protocol data units should be handled orrouted through the network by the network elements, and how informationsuch as routing information should be exchanged between the networkelements.

In Ethernet network architectures, devices connected to the networkcompete for the ability to use shared telecommunications paths at anygiven time. Where multiple bridges or nodes are used to interconnectnetwork segments, multiple potential paths to the same destination oftenexist. The benefit of this architecture is that it provides pathredundancy between bridges and permits capacity to be added to thenetwork in the form of additional links. However to prevent loops frombeing formed, a spanning tree was generally used to restrict the mannerin which traffic was broadcast on the network. Since routes were learnedby broadcasting a frame and waiting for a response, and since both therequest and response would follow the spanning tree, most if not all ofthe traffic would follow the links that were part of the spanning tree.This often led to over utilization of the links that were on thespanning tree and underutilization of the links that weren't part of thespanning tree.

To overcome some of the limitations inherent in Ethernet networks, aProvider Link State Bridging network (one example of a link stateprotocol controlled Ethernet network) was disclosed in application Ser.No. 11/537,775, filed Oct. 2, 2006, entitled “Provider Link StateBridging,” the content of which is hereby incorporated herein byreference. PLSB is further described in U.S. patent application Ser. No.11/702,263, filed Feb. 5, 2007, entitled MULTICAST IMPLEMENTATION IN ALINK STATE PROTOCOL CONTROLLED ETHERNET NETWORK, the content of which ishereby incorporated herein by reference.

PLSB uses a link state protocol such as Intermediate System toIntermediate System (ISIS) to enable the network elements to exchangelink state routing information. The nodes use the link state routinginformation to compute shortest paths through the network. Becauseshortest path routing is used, a shortest path tree may be computed fromeach source node to avoid the use of the Spanning Tree Protocol, so thatlink utilization may be increased on the network.

MPLS networks may be built on Ethernet networks or other communicationnetworks. In an MPLS network, a signaling protocol is used to establishlabel switched paths through the network, so that traffic may beforwarded across the network on any desired path. In operation, aningress node (label edge router or LER for short) will receive a packetand determine which path the packet should take through the network. TheLER will apply an outer label to the packet and forward it on the LabelSwitched Path (LSP). Label Switch Routers (LSRs) on the LSP will receivethe packet, remove the outer label, use the outer label to determine anext hop for the packet, apply a new outer label to the packet, andforward the packet on the network to the next hop. This outer label willthus be replaced at each hop as the packet passes through the networkuntil the packet reaches its destination.

MPLS establishes unicast connectivity everywhere by establishing LabelSwitched Paths between pairs of nodes on the MPLS network. Setup of thelabel switched paths requires labels to be distributed to each of thenodes on the path, so that the nodes can agree on what labels will beused to enable the packet to follow the path through the network. Oneprotocol that is commonly used to establish label switched paths throughan MPLS network is commonly referred to as Label Distribution Protocol(LDP), although other signaling protocols have been developed as well.Using a signaling mechanism, labels are established along the labelswitched paths so that label switch routers can read a label, determinean output for the packet based on the label, and apply a new label toforward the packet along the path through the network. The signalingprotocol is used to install the labels and other appropriate forwardingstate for the traffic along the path. The Label Switched Paths defineunicast connectivity on the MPLS network, which is generally set up inadvance indiscriminately.

MPLS also has several different types of labels that are commonly used.Generally, an outer label will be used to define the forwarding contextfor a particular packet. This label is often replaced hop-by-hop as thepacket traverses across the network. Once the packet has reached an areawhere the forwarding context is implicit, this outer label may be poppedoff the packet which is commonly referred to as pentultimate hoppopping. Forwarding context is commonly deemed implicit at least one hopaway from the final destination of the packet and, hence, the termpentultimate has been used to refer to this process. However, the outerlabel may be removed at any point along the network path where the routebecomes implicit. The outer labels are node-specific, which means thatthey have meaning to a particular node on the network. The outer labelsare not globally unique values, but rather may be reused at differentparts of the network.

MPLS enables multiple labels to be stacked onto a given packet.Frequently, as mentioned above, the outer label is used to specifyforwarding context for the packet. An inner label (Pseudo Wire label) isfrequently used to enable the nodes to demultiplex the packet at theegress from the Label Switched Path. To do this, the destination nodewill assign a Pseudo Wire label for each service instance being handledby that destination node. The destination also will then instruct theother nodes on the network to apply the Pseudo Wire labels to thepackets when they enter the network, so that the egress node can use theinner MPLS Pseudo Wire label to determine how to forward the packet.Thus, the egress node will assign Pseudo Wire labels to its serviceinstances and coordinate with the ingress nodes to apply those PseudoWire labels to traffic entering the network. Like the outer labels, theinner Pseudo Wire labels are not network unique, but rather are onlyunique to the particular egress node. Use of inner labels enables manydifferent flows of data to be multiplexed for transmission over a givenLSP on the MPLS network.

In operation, a LER will apply both the inner Pseudo Wire label and theouter forwarding label to a packet at the ingress to the MPLS network.The outer label will be used to forward the packet across the networkand the inner label may be used by the destination node to forward thepacket off the MPLS network. This enables a single lookup to beperformed by the ingress LER and enables label switching to be used toforward the packet across the MPLS network and, by the destination node,off of the MPLS network e.g. to a client network.

Once unicast connectivity has been established, through theestablishment of a full set of LSPs through the network, multicastconnectivity may be built on top of the MPLS network. Unfortunately,building multicast connectivity requires use of a different signalingprotocol, which makes multicast slower to set up and more error prone.For example, nodes use a protocol such as Internet Group ManagementProtocol (IGMP) to join and leave multicast groups, which causes thenodes to add nodes and remove nodes from the multicast tree. As nodesjoin and leave multicast groups, multicast connectivity is built on theMPLS nodes. Destination nodes that would like to subscribe to themulticast send out a join message and the intermediate nodes use thejoin messages to determine whether forwarding state should be added forthe particular multicast. Building multicast trees one at a time in thismanner is time consuming and computationally intensive. Accordingly, itwould be advantageous to provide a new way to implement multicast on anMPLS network.

SUMMARY OF THE INVENTION

Domain-wide unique node identifiers and domain-wide unique serviceidentifiers are distributed within a MPLS domain using routing systemLSAs. Nodes on the MPLS network compute a shortest path tree for eachother node and install unicast forwarding state for each node based onthe domain-wide unique node ID. Nodes also install multicastconnectivity between nodes advertising common interest in a serviceidentifier. Rather than distributing labels to be used in connectionwith unicast and multicast connectivity, the nodes deterministicallycreate the labels. The labels may either be domain wide unique perunicast path or per multicast, or may be locally unique anddeterministically calculated to provide forwarding context for theassociated path. Any number of labels may be used, although in oneembodiment at least two label contexts are used—one per service and oneper source for multicast, and one per service and one per destinationfor multicast. More labels may be used as well as long as they aredeterministically calculated.

When a packet is received at the MPLS network, the label edge routerwill determine the destination of the packet on the MPLS network andapply a label to the packet. Where the label is domain-wide unique, thenodes on the MPLS network will forward the packet o the destinationwithout swapping labels at each hop on the network. Where the label isnot domain-wide unique, the nodes may perform label swapping to forwardthe packet across the network. Multicast and unicast paths may becongruent, although this is not a requirement.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present invention are pointed out with particularity inthe appended claims. The present invention is illustrated by way ofexample in the following drawings in which like references indicatesimilar elements. The following drawings disclose various embodiments ofthe present invention for purposes of illustration only and are notintended to limit the scope of the invention. For purposes of clarity,not every component may be labeled in every figure. In the figures:

FIG. 1 is a functional block diagram of an example MPLS communicationnetwork illustrating advertisement of domain-wide unique nodeidentification by example MPLS node L;

FIG. 2 is a functional block diagram of the example MPLS communicationnetwork of FIG. 1, showing example unicast connectivity established toone of the MPLS nodes to enable all nodes on the MPLS network to forwardunicast traffic to that MPLS node;

FIG. 3 is a functional block diagram of the example MPLS communicationnetwork of FIG. 1, showing advertisement of interest in a common serviceinstance by several MPLS nodes;

FIG. 4 is a functional block diagram of the example MPLS communicationnetwork of FIG. 1, showing example multicast connectivity establishedbetween the MPLS nodes that have advertised interest in the commonservice instance;

FIG. 5 is a flow chart of a process that may be used to establishunicast connectivity on a MPLS network such as the example MPLS networkshown in FIGS. 1-4;

FIG. 6 is a flow chart of a process that may be used to establishmulticast connectivity on a MPLS network such as the example MPLSnetwork shown in FIGS. 1-4; and

FIG. 7 is a functional block diagram of an example MPLS node that may beused to implement an embodiment of the invention.

DETAILED DESCRIPTION

FIG. 1 shows an example MPLS communication network that will be used toexplain implementation of an embodiment of the invention. In theembodiment shown in FIG. 1, the MPLS communication network 10 has aplurality of nodes 12 interconnected by links 14. MPLS networkstypically run a link state routing protocol such as Open Shortest PathFirst (OSPF) or Intermediate System to Intermediate System (IS-IS). Therouting system enables nodes to send out advertisements to notify theother nodes of the state of the links to which they are connected. Theseadvertisements will be referred to herein as Link State Advertisements(LSAs.). Generally, a LSA will identify not only the node but also itsadjacencies. The node listens for LSAs and uses the informationcontained in the LSAs to build a common view of the topology of the MPLSnetwork, which is stored in the node's Link State Data Base (LSDB). Thenodes may then use the Link State Data Base to calculate routes throughthe MPLS network as required.

In one embodiment, the nodes use the LSA to transmit a domain-wideunique node identification value, referred herein as a “node identifier”or “node ID”. The node ID is unique within the domain and isdeterministic. The Node ID is used for source and destinationidentification. In one embodiment, the node ID is a MPLS label that canbe used by any other node on the network to forward unicast traffic tothe node associated with that node ID. For unicast traffic, the labelidentifies the destination on the network and, for example, may identifythe destination node. For multicast, by contrast, the label is specifiedby the source node and uniquely identifies the MPLS service instance onthe MPLS network. Any number of labels may be used, although in oneembodiment at least two label contexts are used—one per service and oneper source for multicast, and one per service and one per destinationfor multicast. More labels may be used as well as long as they aredeterministically calculated.

Nodes on the network distribute unique service instances which are usedto compute and install forwarding state. Unicast forwarding state isbased on a service instance that terminates at the destination node,whereas multicast forwarding state is based on a service instance thatoriginates at a source node. Unicast forwarding state is installed forthe unicast service instance from every node to the intended destinationnode along shortest path trees to the destination node. Multicastforwarding state is installed from the source node to any other nodeadvertising a common interest in the service instance. By basingconnectivity on domain-wide unique service instance values, both unicastand multicast connectivity may be established by the nodes in the sameway. Additionally, since interest in service instances may be advertisedusing the routing system, a separate signaling protocol is not requiredto establish unicast or multicast connectivity on the MPLS network.Forwarding state may be computed deterministically as well, to avoid theuse of a label distribution protocols for label distribution. Thus, bothmulticast and unicast connectivity may be established based on serviceinstances, and the necessary forwarding state for the service instancesmay be computed rather than signaled. This allows the routing protocolto be used and eliminates the need for several other protocols that arecommonly used on MPLS networks.

In one embodiment, the node ID may be used as an outer label to enabletraffic to be forwarded to the destination node on the MPLS network. Inthis embodiment, since the node ID is domain-wide unique, the nodes onthe MPLS network may install forwarding state such that any packetlabeled with the Node-ID will be switched along the shortest path treetoward the destination. In this embodiment there is no reason for thenodes to switch the label as the packet traverses the network; ratherthe same label may be used at each hop so that coordination betweennodes on the paths is not required to enable traffic to be forwardedthrough the MPLS network.

In another embodiment, rather than using a domain-wide unique labelvalue for unicast traffic to a destination, the nodes on the network maydeterministically create labels to be used to forward data toward eachdestination on the network. As noted above, each node on the network hasa synchronized view of the network topology and will calculate shortestpath tree for each node on the network. As part of this calculation, thenode may calculate what label should be used to forward traffic on theshortest path tree. Likewise, the node may calculate what labels itsneighbors will use when forwarding traffic on the tree to thedestination. The nodes may install forwarding state for these labels sothat the label space may be reused on the network. However, since thelabels are computed rather than signaled, the nodes are not required touse LDP or another label signaling protocol to establish LSPs on thenetwork.

For example, in FIG. 1 node L has transmitted a Link State Advertisement16 containing a MPLS Label which will serve as Node L's Node ID on theMPLS network. As shown in FIG. 2, the nodes on the MPLS network will usethe network topology from the routing system to determine a shortestpath tree 18 to each node on the network. The shortest path tree isshown using darker lines in FIG. 2. When the nodes receive a Link StateAdvertisement containing a node ID, the nodes on the MPLS network willuse the routing system to calculate a shortest path tree to the nodethat transmitted the advertisement. Nodes on the network will alsocalculate labels to be used to forward traffic along the tree to thenode install forwarding state into its forwarding database to enable itto forward packets with the computed MPLS labels to the node. In oneembodiment, the node ID may be the label, which may be used by all nodeson the network to forward MPLS traffic toward the node. In thisembodiment the nodes will not need to perform label swapping but maysimply forward traffic tagged with the Node ID MPLS label toward thedestination node. This requires the MPLS label to be domain-wide unique.In another embodiment, if domain-wide unique MPLS labels are not used,the nodes may calculate the labels to be used to forward the traffic andinstall forwarding state based on the computed labels. In eitherembodiment, signaling is not required to exchange labels on the network.

In FIG. 1, node L has transmitted a link state advertisement containingnode ID=L. The node ID is a MPLS label. Each node will determine if itis on a shortest path tree to node L and, if so, install forwardingstate to cause traffic to be forwarded on the tree toward node L. Thelabel may be domain-wide unique and consistent across the network ordifferent labels may be calculated by the nodes and then swapped as thetraffic is forward toward the destination.

In operation, when a packet arrives at the edge of the network, thelabel edge router may perform a lookup and determine that the packetshould be forwarded to node L on the network. The label edge router willthen attach the label for node L (Node L's node ID) to the packet andforward the packet onto the MPLS network. Each node on the MPLS networkhas forwarding state that will enable the node to forward the packet onthe shortest path tree toward node L.

For example, if node A receives a packet 20, it will perform a lookup todetermine how to forward the packet on the network. In this example,node A will determine that the packet should be forwarded to node L.Node A will attach a MPLS label 22 to the packet that identifies node Land forward the packet on the network. Node E will receive the packet,read the label 22, and forward the packet to node H. Note, in thisexample, that node E does not replace the label but rather uses the samelabel. Each MPLS node on the network will perform this same process ofreading the label 22 and then reapplying the same label to enable thepacket to use the same label at each hop on the network. Optionally thelabel 22 may be popped at the last node H, or elsewhere on the networkwhere forwarding is implicit, in a manner similar to pentultimate hoppopping. This embodiment provides relatively simple operation from alabel calculation standpoint, since each node uses the same label toforward the traffic to the destination. The invention is not limited inthis manner as other label calculation processes may be used as wellthat will enable the nodes to calculate the labels to be used to forwardtraffic on the MPLS paths.

Transmitting a domain-wide unique node ID in the form of an MPLS label,and then using the routing system to install forwarding state for thatlabel/node binding, enables unicast connectivity to be established onthe MPLS network without requiring separate label switched paths to besignaled on the network. Typically, the node L would need to establishseparate label switched paths with each of the other nodes on thenetwork. By using the routing system to establish unicast connectivity,traditional LSP signaling may be eliminated.

Multicast connectivity may also be implemented by introducing a notionof a service instance to the MPLS network. As used herein, the term“service instance” will be used to refer to a multicast or unicast groupof interest. Nodes on the network may advertise interest in a serviceinstance using a routing system link state advertisement. The serviceinstance, like the Node ID, is a MPLS label and is a domain-wide uniquevalue. Nodes on a service instance advertise their interest in theservice instance using IS-IS LSAs. Whereas the node ID identifies thedestination node, in a multicast context the service identifieridentifies the source of the multicast.

When a node on the MPLS network receives a LSA containing a serviceinstance, it will determine whether it is on a shortest path between anode advertising interest in the service ID and the source nodeassociated with the service instance. Any node that is on a shortestpath between the source of the multicast and another node advertisingcommon interest in the same service instance will install forwardingstate for the service instance in their forwarding database. Since theservice instance is a MPLS label, installing forwarding state for theservice instance will enable the node to forward any packets tagged withthe service instance label on the shortest path through the MPLSnetwork. Thus, MPLS multicast connectivity may be created simply bycausing nodes to advertise interest in the service instance. The MPLSnodes on the network may then create the paths for the multicast treedeterministically, without requiring the multicast tree to be separatelysignaled on the network. Thus, MPLS multicast may be established at thesame time as unicast and using the same mechanisms, without requiringthe use of LDP or other protocol to exchange labels, and withoutrequiring the use of a separate multicast group management protocol suchas IGMP.

For example, in FIG. 3 assume that service instance 100 will be amulticast flow of traffic originating at node L. Node L will advertiseinterest in the service instance=100 so that all nodes on the networkknow that node L is the source of a multicast with service ID=100. Theservice instance ID is the multicast label that node L will use totransmit multicast traffic on to the MPLS network.

In the example shown in FIG. 3, assume that Node A and Node D would liketo receive the multicast traffic associated with service instance=100.Each of these nodes will transmit a link state advertisement containingthe service ID of the multicast that they are interested in joining.Accordingly, nodes A and D will transmit a LSA containing serviceID=100. The link state advertisement will be flooded on the MPLSnetwork. Each node that receives the link state advertisement will lookto see whether it is on a shortest path between the source of themulticast and a leaf node advertising common interest in the sameservice instance. Node E, for example, will determine that it is on ashortest path between node A and node L and install forwarding state forthe multicast label associated with the service instance into itsforwarding table. Similarly, node H will determine that it is on ashortest path between node A and node L, and that it is on a shortestpath between node D and node L. Accordingly, node H will installforwarding state to cause traffic received from node L to be replicatedand output over two ports—one port to D and one port to A. The examplemulticast tree is shown using thicker lines in FIG. 4.

Each node on the network will calculate service labels for the multicastand install forwarding state for the multicast as appropriate. Themulticast may use a domain-wide unique multicast MPLS label thatuniquely identifies the multicast on the MPLS network. In thisembodiment the nodes are not required to perform label swapping but mayrather all install forwarding state for the domain-wide unique MPLSlabel. Alternatively, the nodes may calculate labels to be used for themulticast and install forwarding state for the calculated labels.

When node L receives a packet that is associated with the multicast, itwill attach a label 24 to the packet to identify the packet as part ofservice instance 100. Optionally, the node may also attach a secondlabel identifying the source node (using the source Node ID) and usethat as an outer label. Once the label(s) have been applied, node L willthen forward the multicast packet on the network. When node H receivesthe packet, it will read the label and perform a lookup to determineover which port or ports it should forward the packet. Node H willdetermine that it should forward the packet towards Node E and Node D,and will replicate the packet and output the packet on ports towardthose nodes. If a globally unique label is being used for the serviceinstance, node H will apply the same label to the packet as was attachedto the packet when it arrived so that the packet will use the same labelat each hop on the network. Otherwise, if labels have been calculateddeterministically, the node will swap the original label for the newlabel before forwarding the packet on the network. Where forwardingstate is implicit, such as on the link between node H and node D, thelabel may be popped. Forwarding may be performed based on the servicelabel alone or based on the combination of service label and sourcelabel where a source label is used.

According to an embodiment of the invention, the service labels used tocreate multicast and unicast paths are computed deterministically. Thisenables the MPLS paths to be created without requiring the paths to besignaled using a separate signaling protocol—the routing protocol isable to be used to set up and tear down the paths. In one embodiment,MPLS multicast uses a label space for every root of the tree. When itdoes that it uses an upstream defined label. The source must beadvertised by a unique identifier that fits in an MPLS label space of 20or less bits. The label space is identified by a context which may be anouter label. A node can compute an outer label space per source node outof the per platform space. Each node computes a node identifier so thata node identifier is created on all destinations.

Multicast operation: Multicast packets include two labels: an outerlabel from per platform space that is the same on all nodes, and aninner label which provides source “node identifier”. The inner label isa domain-wide label. The inner label is based on a per source basis andonly installed on nodes in the domain that support this multicast tree.The domain wide unique inner label is based on “service identifier”.

All nodes do all pairs shortest path computation creating a tree fromeach source. When a node lies on the shortest path between twodestinations advertising interest in a particular service instance, thenode installs a label space for the source node and each serviceidentifier that goes through the node.

The forwarding operation includes reading the MPLS multicast context andthen looking up the per source label space based on the node identifier.The outer label may be removed, but the second (inner) label determinesthe set of egress ports. The outer label may be added back and thepacket is replicated for each outgoing port.

Unicast operation: Unicast packets similarly include the same twolabels. The outer label is a Domain wide unique label based ondestination “node identifier”. Alternatively, the labels on the unicastpath may be computed deterministically. The inner label is based on aper destination basis and is only examined on egress.

All inner and outer labels and/or label contexts are distributed viaISIS. All nodes do all pairs shortest path computation creating a treefrom each source. When a node lies on the shortest path between twodestinations the node installs a destination label for the destinationnode provided there is a service identifier in common. Serviceidentifiers may be identified as sources or sinks in the control planeand therefore can create unidirectional traffic. Services may combinemultiple service identifiers. Service Identifiers may be associated withunique topology identifiers.

Optionally, in one embodiment, unicast paths will be congruent withmulticast, provided all computations are uniquely deterministic. Theinvention is not limited in this manner, however, as different processesof determining paths through the network may be used for unicast thanare used for multicast. While shortest path trees have been used, thisworks for all forms of trees that are deterministic. Thus, other typesof deterministic trees may be used instead of shortest path trees.Additionally, multipath is available if some of the “node identifier”label bits are used to identify different paths creating identifiers forequal trees.

Traffic engineered MPLS could use labels similar to Multicast labelsthat define point to point or point to multipoint labels. The servicelabel space must split to allow traffic engineered services. Servicelabels can be defined as sources and sinks and also as trafficengineered or not traffic engineered. Additional information aboutbandwidth and paths would have to be advertised in the link stateadvertisements to enable the traffic engineered paths to be set upacross the network.

The organization of Service identifier which is for both multicast andunicast, and then mapping the services at the edge to these groups,provides a multicast enabled topology from the start, rather than as anafterthought.

Creating Service instances allows the multicast service to be describedsuch that simplified signaling (i.e. using ISIS Link StateAdvertisements) is all that is needed. Moving all advertising of servicegroups to link state allows the model to move from the current model ofsignaling, to one of computation, enabling fast convergence with nosignaling. MPLS currently uses label distribution protocols to createlabel switched paths. By using service instances, it is possible toeliminate label distribution signaling to provide an Ethernet-likeservice model, with tailorable multicast and unicast, and ensure properconnectivity of Ethernet PBB services by an MPLS core.

FIG. 5 shows a flowchart of a process of establishing unicastconnectivity on an MPLS network according to an embodiment of theinvention. As shown in FIG. 5, nodes on the MPLS network exchange linkstate routing advertisements (100) to enable each node to have asynchronized view of the network topology. Each node on the network isassigned a domain-wide node ID (MPLS label) that will be used to forwardunicast traffic to that node (102). The nodes advertise their node IDusing a link state advertisement (104) and nodes on the network computethe shortest path tree to each node (106). The nodes will then installforwarding state on the shortest path tree, to enable unicast trafficcontaining the destination node ID as a label to be forwarded onshortest path tree to the destination (108). The node ID may be used onthe forwarding label or the node may deterministically compute theforwarding labels that will be used by the upstream node on the tree andto deterministically compute the forwarding label that it should use toforward traffic toward the destination. When a packet is received at theingress to the MPLS network, a destination based label will be attachedto the packet (110). This label will be based on the destination nodeID. The ingress node will then forward the packet onto the MPLS networkand the nodes on the shortest path tree will forward the packet acrossthe MPLS network to the egress node (112).

FIG. 6 is a flowchart of a process of establishing multicastconnectivity on an MPLS network according to an embodiment of theinvention. As shown in FIG. 6, a domain-wide service identifier isassigned to each multicast to be carried on the MPLS network (120). Eachnode that wants to participate in a multicast advertises the serviceidentifier using a link state routing advertisement (122). Nodes usepre-computed shortest path trees to determine whether they are on ashortest path between the multicast source and one or more of the nodesadvertising interest in the multicast (124). Any node on a shortest pathbetween two nodes advertising a common interest in the same serviceinstance will install forwarding state for that service instance (126).When traffic arrives to be carried on the multicast tree, the ingressnode will attach a multicast service label to each packet and forwardthe packets onto the MPLS network (128). The nodes on the MPLS networkwill use the forwarding state for the multicast to selectively forwardthe multicast traffic on the MPLS network from the source node to theother nodes interested in receiving that traffic (130).

FIG. 7 shows a functional block diagram of an example MPLS networkelement. As shown in FIG. 7, the MPLS network element includes a routingfunction 70 that receives link state advertisements from other nodes anduses the link state advertisements to generate a link state database 72.The link state database contains information about the network topologyand is used by the network element to calculate shortest path treesrooted at each node of the network.

According to an embodiment of the invention, the routing function alsoreceives label information from the link state advertisements and usesthe label information to program a forwarding function 74. The labelinformation includes node identifiers, which are labels identifying thenodes on the network, and service identifiers, which are labelsidentifying service instances on the network.

When the routing function receives a link state advertisement containinga node ID, it will install forwarding state into the forwarding functionto enable traffic labeled with the node ID to be forwarded to thecorrect output port, so that the traffic will follow the shortest pathtree to the destination node on the network. In operation, theforwarding function will read the label to determine the next hop forthe traffic and forward the traffic to a queuing function 76 for theappropriate port that is connected to the determined next hop. Theservice label may be applied by the forwarding function or the queuingfunction before the packet is transmitted.

When the routing function receives a link state advertisement containinga service ID, it will update its link state database to include anassociation between the service ID and the node which issued the linkstate advertisement. The routing function will also search its linkstate database for other nodes that have also advertised interest in thesame service ID. The node will then install forwarding state for theservice instance into the forwarding function whenever the node is on ashortest path tree between two nodes advertising a common interest inthe same service instance.

Where the network element 12 is a label edge router, the routingfunction can also maintain a label database 78 that will be used by anencapsulating function 80 to label traffic as it arrives on the network.When a packet arrives at the network element 12 from outside of the MPLSnetwork, the packet will be classified and a label will be attached.Where the packet is a unicast packet, a destination label will beobtained for the unicast packet and added by the encapsulation function.Where the packet is a multicast packet, a source based multicast labelwill be obtained for the multicast packet and added by the encapsulationfunction. Optionally, the encapsulation function may also add one ormore inner labels to the packet. The encapsulated packet will then besent to the forwarding function to be forwarded out the appropriate portonto the MPLS network.

The functions described above may be implemented as a set of programinstructions that are stored in a computer readable memory and executedon one or more processors on the computer platform. However, it will beapparent to a skilled artisan that all logic described herein can beembodied using discrete components, integrated circuitry such as anApplication Specific Integrated Circuit (ASIC), programmable logic usedin conjunction with a programmable logic device such as a FieldProgrammable Gate Array (FPGA) or microprocessor, a state machine, orany other device including any combination thereof. Programmable logiccan be fixed temporarily or permanently in a tangible medium such as aread-only memory chip, a computer memory, a disk, or other storagemedium. All such embodiments are intended to fall within the scope ofthe present invention.

It should be understood that various changes and modifications of theembodiments shown in the drawings and described in the specification maybe made within the spirit and scope of the present invention.Accordingly, it is intended that all matter contained in the abovedescription and shown in the accompanying drawings be interpreted in anillustrative and not in a limiting sense.

What is claimed is: 1-19. (canceled)
 20. A first Multi-Protocol LabelSwitching (MPLS) network element for use in an MPLS network, the MPLSnetwork element comprising: at least one communication interface; atleast one processor coupled to the communication interface; and at leastone storage element storing instructions for execution by the at leastone processor, the instructions comprising: instructions executable toreceive routing advertisements from other network elements in the MPLSnetwork; instructions executable to develop a view of a topology of theMPLS network from the received routing advertisements; instructionsexecutable to receive from a second MPLS network element on the MPLSnetwork, a service identifier in one of the routing advertisements; andinstructions executable to determine from the view of the topology ofthe MPLS network, whether the MPLS network element is on a shortest pathtree rooted at the second MPLS network element; instructions executablewhen the MPLS network element is on the shortest path tree rooted at thesecond MPLS network element to install forwarding state for the serviceidentifier, the forwarding state comprising: a first locally computedlabel to be used by the MPLS network element to forward traffic on theshortest path tree toward a destination; and a second locally computedlabel to be used by a neighbor MPLS network element to forward trafficon the shortest path tree toward the destination.
 21. The first MPLSnetwork element of claim 20, wherein the service identifier is uniquewithin a domain of the MPLS network.
 22. The first MPLS network elementof claim 21, wherein the service identifier is a network element nodeIdentifier which is unique within the domain of the MPLS network. 23.The first MPLS network element of claim 21, wherein the network elementnode identifier is an MPLS label which is unique within the domain ofthe MPLS network.
 24. The first MPLS network element of claim 23,configured to forward unicast traffic to the second network element onthe MPLS network using the MPLS label which is unique within the domainof the MPLS network.
 25. The first MPLS network element of claim 24,configured, if the first MPLS network element installs forwarding statefor the service identifier, to install forwarding state for the MPLSlabel such that any packet received by the first MPLS network elementcontaining the MPLS label will be forwarded toward the second MPLSnetwork element.
 26. The first MPLS network element of claim 21,configured to calculate the MPLS label by determining an MPLS label thatis unique within the domain of the MPLS network and that may be used toforward traffic associated with the service instance.
 27. The first MPLSnetwork element of claim 26, wherein the MPLS label is a unicast labelassociated with the destination node on the MPLS network.
 28. The firstMPLS network element of claim 26, wherein the MPLS label is a multicastlabel associated with a source of a multicast.
 29. The first MPLSnetwork element of claim 20, configured to calculate MPLS labels bycalculating labels to be used to forward traffic associated with theservice instance in a deterministic manner.
 30. The first MPLS networkelement of claim 20, configured to determine whether to install MPLSforwarding state for a service identifier by: determining whether theservice identifier has been advertised by both the second MPLS networkelement and a third MPLS network element on the MPLS network; and if theservice identifier has been advertised by both the second MPLS networkelement and a third MPLS network element on the MPLS network,determining whether the first MPLS network element is on a forwardingpath between second MPLS network element and the third MPLS networkelement.
 31. The first MPLS network element of claim 20, configured tosend routing advertisements to neighboring network element of the MPLSnetwork.
 32. The first MPLS network element of claim 31, configured tosend the routing advertisements using a link state routing protocol inuse on the MPLS network.
 33. The first MPLS network element of claim 20,wherein the instructions comprise: instructions executable to receiverouting advertisements from other network elements in the MPLS networkindicating interest in a multicast service instance; and instructionsexecutable to install MPLS forwarding state for the multicast serviceinstance when the first MPLS network element is on a shortest pathbetween two other network elements advertising interest in the multicastservice instance, the MPLS forwarding state comprising: a first locallycomputed label to be used by the MPLS network element to forward trafficassociated with the multicast service instance; and a second locallycomputed label to be used by a neighbor MPLS network element to forwardtraffic associated with the multicast service instance.
 34. The firstMPLS network element of claim 33, wherein the forwarding state comprisesa label associated with the multicast service instance, the label beingunique within a domain of the MPLS network so that labels are notrequired to be signaled on the MPLS network to enable forwardinginformation to be installed by network elements on the MPLS network. 35.The first MPLS network element of claim 33, wherein the forwarding statecomprises a label associated with the multicast service instance whichis not unique within a domain of the MPLS network, but isdeterministically calculated by each of the MPLS network elements on theMPLS network, so that labels are not required to be signaled on the MPLSnetwork to enable forwarding information to be installed by MPLS networkelements on the MPLS network.
 36. A non-transitory processor readablestorage medium storing instructions for execution by at least oneprocessor of a first Multi-Protocol Label Switching (MPLS) networkelement in an MPLS network, the instructions comprising: instructionsexecutable to receive routing advertisements from other network elementsin the MPLS network; instructions executable to develop a view of atopology of the MPLS network from the received routing advertisements;instructions executable to receive from a second MPLS network element onthe MPLS network, a service identifier in one of the routingadvertisements; and instructions executable to determine from the viewof the topology of the MPLS network, whether the MPLS network element ison a shortest path tree rooted at the second MPLS network element;instructions executable when the MPLS network element is on the shortestpath tree rooted at the second MPLS network element to installforwarding state for the service identifier, the forwarding statecomprising: a first locally computed label to be used by the MPLSnetwork element to forward traffic on the shortest path tree toward adestination; and a second locally computed label to be used by aneighbor MPLS network element to forward traffic on the shortest pathtree toward the destination.
 37. The medium of claim 36, wherein theinstructions comprise instructions executable to determine whether toinstall MPLS forwarding state for a service identifier by: determiningwhether the service identifier has been advertised by both the secondMPLS network element and a third MPLS network element on the MPLSnetwork; and if the service identifier has been advertised by both thesecond MPLS network element and a third MPLS network element on the MPLSnetwork, determining whether the first MPLS network element is on aforwarding path between second MPLS network element and the third MPLSnetwork element.
 38. The medium of claim 36, wherein the instructionscomprise: instructions executable to receive routing advertisements fromother network elements in the MPLS network indicating interest in amulticast service instance; and instructions executable to install MPLSforwarding state for the multicast service instance when the first MPLSnetwork element is on a shortest path between two other network elementsadvertising interest in the multicast service instance, the MPLSforwarding state comprising: a first locally computed label to be usedby the MPLS network element to forward traffic associated with themulticast service instance; and a second locally computed label to beused by a neighbor MPLS network element to forward traffic associatedwith the multicast service instance.